package com.divemotor.ventarepuestosinternet.util;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.faces.context.FacesContext;
import javax.servlet.http.Cookie;

import org.apache.log4j.Logger;

public class FechasUtil {

	private static final Logger logger = Logger.getLogger(FechasUtil.class);

	public static Date obtenerFechaActual() {

		String stringDiferencia = ((Cookie) FacesContext.getCurrentInstance()
				.getExternalContext().getRequestCookieMap()
				.get("diferenciaHoraria")).getValue();

		Integer diferenciaHoraria = Integer.valueOf(stringDiferencia);
		logger.info("Diferencia horaria es: " + diferenciaHoraria);

		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.HOUR, diferenciaHoraria);
		return calendar.getTime();
	}

	public static Integer restarFechasEnMinutos(Date minuendo, Date sustraendo) {
		Long resultado = (minuendo.getTime() - sustraendo.getTime())
				/ (1000 * 60);
		return new Integer(resultado.intValue());
	}

	public static Timestamp convertirFecha(Object objValue, String dateFormat) {
		if (objValue != null && !objValue.toString().equals("")) {
			try {
				SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
				Date date = sdf.parse(objValue.toString());
				return new java.sql.Timestamp(date.getTime());
			} catch (Exception e) {
				System.out.println("HoraAmPmConverter : " + e.getMessage());
			}
		}
		return null;
	}

	public static String convertirFechaHoras(String dateFormat, Date date) {
		try {
			if (date != null) {
				SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
				return sdf.format(date).toString();
			}
		} catch (Exception e) {
			System.out.println("convertirFechaHoras : " + e.getMessage());
			return null;
		}
		return null;
	}
}
